The QuickTime MPEG extension works directly with QuickTime to provide complete playback and control of an MPEG 1 bitstream within a QuickTime movie.
How does it work?
The QuickTime MPEG extension is not simply an image decompressor component (codec). When you open an MPEG movie with the extension installed, QuickTime automatically imports the file into a QuickTime movie with a single MPEG track. The MPEG content is not contained in a video and/or audio track — rather, it has its own separate track type, like a Text or a Sprite track. This MPEG track handles both the video and the layer II audio streams of an MPEG file. There is only a decompressor — no compressor (hence, you cannot compress a QuickTime movie with this Extension to create an MPEG file).
How do I report bugs or provide feedback?
Please direct your QuickTime MPEG Extension feedback and bugs to <qtmpeg10@apple.com> (and please cc: your evangelist, <cwiltgen@apple.com>, at the same time). When reporting a difficulty or problem, please be sure to include the following information:
• What System Software are you running?
• What is the configuration of your machine (machine type, RAM, etc.)?
• What is the CDi title you’re playing?
• What is the URL of the MPEG bitstream you’re playing?
• If the MPEG stream you are using is not from a CDi or a known URL, please enclose the file or a pointer to a download site for the movie/s that you’re using.
What do I need to use it?
• A Power Macintosh
• QuickTime 2.5 and an application that can play movies (such as MoviePlayer 2.5 or SimpleText)
• Approximately 2.5 MB of free memory per MPEG bitstream (for optimal playback)
How do I install it?
To get started, make sure QuickTime 2.5 is installed (the MPEG extension does not support earlier versions of QuickTime). Place the QuickTime MPEG extension in the Extensions folder in your System folder, and restart your machine. You should now be ready to go — try opening an MPEG file from MoviePlayer.
Release Changes for version 1.0b3
• Fixed problems with audio-only streams transition.
• Fixed problems with looping video-only streams.
• Fixed a few bugs with FastStart playback.
• Very short mpegs are no longer a problem to play using the QT Plug-In v1.1 (which you can find on the QuickTime beta software page, http://quicktime.apple.com/sw/plugin_beta.html/)
• Random access and backwards play is much faster in video-only streams
• Included the installer. The installer will install the MPEG extension, both the ThreadsLib 2.1.5a2 and the ThreadsManager in appropriate situations, as well as installing the updated MoviePlayer.
• Yet more editing bug fixes.
Release Changes for version 1.0a6
• Changed the way fps is reported to track instantaneous display rate more accurately
• The new ThreadsLib (v2.1.5a2) is implemented and installed. This should fix the crashes found with Internet Explorer.
• Reject MPEG-2 files as unreadable
• Various fixes for editing bugs
Release Changes for version 1.0a5
• GetMoviePict() now generates the correct picture. (Thanks, Darren!)
• MPEGs played using the QuickTime Plug-In v.1.1 (in development) and a browser will now FastStart.
• The 'mpeg' gestalt selector was added
• The extension will run properly with the Thread Manager in pre-7.5 systems.
• Only layer II audio files are supported
• Various fixes for editing bugs
Release Changes for version 1.0a2
The following are now supported:
• “.mpa”, “.mpv” and “.mpm” extensions
• 'MPGa', 'MPGv', and 'MPGx' file types
Release Changes for version 1.0d9 (alpha 1)
The following are now supported:
• Elementary audio bitstreams
• Kanji Talk System Software
• System 7.1.2 (make sure you’ve installed the ThreadManager — see Things You Oughta Know).
Release Changes for version 1.0d8
• Supports playing MPEG-encoded movies from a local hard disk or over the network
• Supports playing MPEG-encoded movies from Video CD and CDi disks
• Supports display of MPEG video in all monitor display depths, with optimized performance for 8-, 16- and 32-bit depths
• Supports MPEG chapter information (chapters are displayed in the standard movie controller, and you can select chapters to go to particular spot in the MPEG bitstream) from Video CDs
• Supports standard QuickTime transport controls (play, pause, sound volume control, audio balance, frame-accurate step-forward and -backward, fast-forward, rewind).
• Supports arbitrary window resizing
• Supports standard QuickTime editing functions: cut, copy, paste, etc. (note: FlattenMovie works, but must copy the entire MPEG stream to do so)
• Support ability to play and utilize elementary MPEG streams (video only)
• Support movie layering, compositing, and graphics mode controls
• Support hardware acceleration of clipping, scaling, and color-space conversion (i.e. it utilizes the same mechanisms used to accelerate normal video)
Things You Oughta Know
• In order to run the MPEG extension, you must install the ThreadsLib 2.1.5a2. The installer will do this for you.
• In order to run the MPEG extension with pre-7.5 systems, you must install the Thread Manager. Once you install the ThreadManager in the Extensions folder of your System Folder, the MPEG extension should behave commensurate with 7.5 and up systems. The installer will do this for you.
•Non-Apple CD drivers will have problems reading CDi and VCD discs. We have contacted FWB and Charismac regarding their driver issues. Thanks to all who wrote in about this!
• Blacklining is intentional. With large window sizes, blacklining saves CPU cycles.
• Only layer II audio streams are supported.
• ClarisWorks’ Text Preview extension interferes with the MPEG file preview. The Text Preview extension (installed by ClarisWorks 3.0 and 4.0) causes applications to display text symbols rather than a movie clip in those applications’ Open Dialog Box movie preview window.
• Playback performance is CPU-dependent. A Power Macintosh 7100/80Mhz/601 gets approximately 10–12 fps at a window size of 320 ¥ 240, while a Power Macintosh 8500/120MHz/604 gets approximately 24 fps at a window size of 320 ¥ 240.
• Use Save As, not Save, when you are saving changes to a raw MPEG bitstream from MoviePlayer. Using Save will result in an error dialog.
• For best performance, make sure your control panels are set to 44.1 kHz 16-bit stereo audio and 8- or 16-bit color.
Technical Notes for Software Developers
If you want to have your application open up MPEG files directly as QuickTime movies, simply follow the same procedure you would for normal QuickTime movies. Use OpenMovieFile to open the MPEG file, use NewMovieFromFile to get the movie from the MPEG file (this will automatically perform the import operation for you), and use CloseMovieFile to close the MPEG file.
Some applications expect to find a video track and an audio track in the movie, and refuse to work with the movie if they don’t find one of these tracks. This will cause problems with QuickTime movies containing an MPEG track, as neither an audio or video track is present. Since QuickTime 2.0 there has been a convenient mechanism to find those tracks in a movie that play audio and those tracks which draw. This can be done using the GetIndTrackType call. GetIndTrackType can be used to interate through all tracks in a movie with a given characteristic. To find the visual tracks of a movie you would use code as follows:
long index = 0;
Track t;
while (t = GetMovieIndTrackType(theMovie, ++index, VisualMediaCharacteristic, movieTrackCharacteristic | movieTrackEnabledOnly) {
// this track draws - you can treat it as a video track
}
To find the audio tracks of a movie, you would use the same code but substitue AudioMediaCharacteristic for VisualMediaCharacteristic. Note that this code works for all track types, and so is a good way to deal with all kinds of QuickTime media including sound, video, music, text, sprites, timecode, as well as MPEG.
If you need to determine the actual track type of the media returned, you can do so as follows:
You can then compare the value returned in the mediaType field against the constants for the various media types such as VideoMediaType, SoundMediaType, or MPEGMediaType.
The MPEG track may be the first to support both audio and video, but it won’t be the last. Taking the time now to ensure that your application can work well with QuickTime MPEG tracks will enhance your application’s overall ability to work with the large variety of QuickTime movies currently is use.
Enjoy!
— The QuickTime Engineering Team <qtmpeg10@apple.com>
— Charles Wiltgen, QuickTime Technologies Evangelist <cwiltgen@apple.com>